package com.example.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.lang.model.util.AbstractAnnotationValueVisitor6;

@Configuration
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    /**
     * 用于配置根应用程序上下文（Context）。
     * 返回一个数组，包含一个或多个用于配置根应用程序上下文的 @Configuration 类。
     * 配置与整个应用程序相关的 Bean，例如数据源、事务管理器、共享的服务等。
     * */
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }
    /**
     * 用于配置 DispatcherServlet 上下文（Web Context）。
     * 返回一个数组，包含一个或多个用于配置 DispatcherServlet 上下文的 @Configuration 类。
     * 配置与 Spring MVC 相关的 Bean，例如控制器、视图解析器、拦截器等。     *
     * */

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMVCConfig.class};
    }
    /**
     * 用于配置 DispatcherServlet 的映射路径。
     * 返回一个字符串数组，包含一个或多个路径，指定 DispatcherServlet 处理的请求路径。
     * 这里的路径可以是模式路径，例如 /app/*。
     * */

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}
